package com.example.huadu_server.house.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.sql.Timestamp;
import java.util.List;

@Data
@TableName("house") // 对应数据库的 house 表
public class House {

    @TableId(type = IdType.AUTO) // 主键自增
    private Integer id;
    private Integer landlordId;        // 房东ID
    private String title;              // 房源标题
    private String description;        // 房源描述
    private String community;           // 小区名
    private String address;            // 房源地址
    private String houseType;          // 房源类型
    private String facilities;          // 配套设施
    private Double price;              // 每日租金
    private Double area;               // 房屋面积
    private Integer floor;             // 楼层
    private Double longitude;          // 经度
    private Double latitude;           // 纬度
    private String businessArea;       // 所在商圈
    private String subwayStation;      // 地铁口
    private String lease;      // 租期
    private String payType;      // 支付方式
    private Integer traffic;             // 交通
    @TableField("house_status") // 明确映射数据库字段 house_status
    private String houseStatus;        // 房源状态：pending, approved, rejected,available
    @TableField("time") // 明确映射数据库字段 time
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Timestamp time;            // 房源创建时间
    private String remarks;            // 房源审核备注

    private String titleDeed;            // 产权证明

    private Integer lockedBy;     //当前锁定审核的管理员ID
    @TableField("lock_time") // 明确映射数据库字段 lock_time
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Timestamp lockTime;            // 锁定时间

    @TableField("admin_id")
    private Integer adminId;          // 审核该房源的管理员ID

    @Setter
    @Getter
    private List<String> imageUrls; // 房源图片列表

}

